[量化指标]Ta

您所在的位置:网站首页 Moving Average用法 [量化指标]Ta

[量化指标]Ta

2024-06-13 14:11| 来源: 网络整理| 查看: 265

Table of Content Overlaps FunctionsMIDPOINT - MidPoint over periodSMA - Simple Moving AverageWMA - Weighted Moving AverageTRIMA - Triangular Moving AverageMAVP - Moving average with variable periodBBANDS - Bollinger BandsEMA - Exponential Moving AverageHow to understand the lag and halflife? DEMA - Double Exponential Moving AverageTEMA - Triple Exponential Moving AverageKAMA - Kaufman Adaptive Moving AverageT3: Triple exponential Moving Average T3:TRIX - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMAMAMA - MESA Adaptive Moving AverageHT_TRENDLINE - Hilbert Transform - Instantaneous TrendlineSAR - Parabolic Stop and Reveres Momentum IndicatorMomentumROC - Rate of change : ((price/prevPrice)-1)*100DX - Directional IndexADX - Average Directional Movement IndexADXR - Average Directional Movement Index RatingPPO - Percentage Price OscillatorAPO - Absolute Price OscillatorMACD - Moving Average Convergence/DivergenceMFI - Money Flow IndexRSI - Relative Strength IndexCMO - Chande Momentum OscillatorAROON - AroonBOP - Balance Of PowerCCI - Commodity Channel Index OscillatorWILLR - Williams' %RSTOCHF - Stochastic FastSTOC - StochasticSTOCHRSI - Stochastic Relative Strength IndexULTOSC - Ultimate Oscillator Volume Indicator FunctionOBVAD Chaikin A/D - Line Accumulation/Distribution LineADOSC - Chaikin A/D Oscillator Cycle Indicator FunctionsHT_DCPERIOD - Hilbert Transform - Dominant Cycle PeriodHT_DCPHASE - Hilbert Transform - Dominant Cycle PhaseHT_PHASOR - Hilbert Transform - Phasor ComponentsHT_SINE - Hilbert Transform - SineWaveHT_TRENDMODE - Hilbert Transform - Trend vs Cycle Mode OtherVolatility measurementSTD of delta closeMean absolute deviationATR - Average True Range

Overlaps Functions MIDPOINT - MidPoint over period

M i d P o i n t = h i g h + l o w 2 MidPoint= \frac{high+low}{2} MidPoint=2high+low​

SMA - Simple Moving Average

特征:资金的涌入价格的提升,资金的流出带来价格的下降,Moving average实际上是人们的仓位的体现,因为建仓有时延,lag其实有时候是必要的特征,并不是zero lag就会更好。

移动平均线一定要小心Lag,要清楚的知道当前计算的参数的lag是多少,否则会不知道这个参数应该有多少的时间领先。 例如:

SMA的lag是(N-1)/2WMA: (N-1)/3EMA: (1-alpha)/ alpha ,如果alpha等于2/(N+1),那么他的lag就会和SMA一致,这也是ta-lib中的取值 WMA - Weighted Moving Average

加权平均,按照线性赋予权重,越近的权重越大

TRIMA - Triangular Moving Average

等边三角形权重加权,周期中间的日期权重最大。

MAVP - Moving average with variable period real = MAVP(close, periods, minperiod=2, maxperiod=30, matype=0)

其中,close和periods应该是要求等长度的,等于对于每一个点上取的不同period的sma对应的该点数值。 当periods=[2, 3, 4]时候,那么前三个数字就是[SMA(close, timepeirod=2)[0], SMA(close, timepeirod=3)[1], SMA(close, timepeirod=4)[2]]。通过minperiod和maxperiod对于periods进行cap和floor,不是很清楚它的实际意义,感觉很容易过拟合。

BBANDS - Bollinger Bands

布林线,通常SMA的周期选20,F系数通常选2。当布林线变窄的时候则说明volatility比较小。 T P ( t y p i c a l p r i c e ) = h i g h + l o w + c l o s e 3 M i d B a n d = S M A ( T P ) U p p e r B a n d = M i d B a n d + F × σ ( T P ) L o w e r B a n d = M i d B a n d − F × σ ( T P ) TP(typical price) = \frac{high+low+close}{3} \\ MidBand = SMA(TP) \\ UpperBand = MidBand+F \times \sigma(TP) \\ LowerBand = MidBand - F\times \sigma(TP) TP(typicalprice)=3high+low+close​MidBand=SMA(TP)UpperBand=MidBand+F×σ(TP)LowerBand=MidBand−F×σ(TP) 应用:Momentum,应用规则是这样的:当一只股票在一段时间内股价波幅很小,反映在布林线上表现为,股价波幅带长期收窄,而在某个交易日,股价在较大交易量的配合下收盘价突破布林线的阻力线,而此时布林线由收口明显转为开口,此时投资者应该果断买入(从当日的K线图就可明显看出),这是因为,该股票由弱转强,短期上冲的动力不会仅仅一天,短线必然会有新高出现,因此可以果断介入。

EMA - Exponential Moving Average

Exponential Moving Average 其中的2是为了考虑tail effect α = 2 n + 1 \alpha=\frac{2}{n+1} α=n+12​ E M A t = α × x t + ( 1 − α ) × E M A t − 1 EMA_{t} = \alpha \times x_t + (1-\alpha) \times EMA_{t-1} EMAt​=α×xt​+(1−α)×EMAt−1​

How to understand the lag and halflife?

H a l f L i f e = l o g [ 1 / 2 ] l o g ( 1 − α ) HalfLife = \frac{log[1/2]}{log(1-\alpha)} HalfLife=log(1−α)log[1/2]​ L a g = 1 α − 1 Lag = \frac{1}{\alpha} - 1 Lag=α1​−1 When Halflife is large, lag is about 1.4 HalfLife

DEMA - Double Exponential Moving Average

相比于EMA,它更加的平滑且延迟更小,相当于用EMA减去一个更慢的波来过滤。虽然这个指标对于理想脉冲的lag是零,但是还是会存在实际上的延迟。 实际过程中DEMA更多的是一种趋势信号,很难及时反馈出反转。 D E M A t = 2 × E M A t − E M A ( E M A t ) DEMA_t = 2\times EMA_t - EMA(EMA_t) DEMAt​=2×EMAt​−EMA(EMAt​)

TEMA - Triple Exponential Moving Average

T E M A t = 3 × E M A t − 3 × E M A ( E M A t ) + E M A ( E M A ( E M A t ) ) TEMA_{t} = 3 \times EMA_t - 3\times EMA(EMA_t) + EMA(EMA(EMA_t)) TEMAt​=3×EMAt​−3×EMA(EMAt​)+EMA(EMA(EMAt​))

KAMA - Kaufman Adaptive Moving Average

特征:KAMA能够在相对震荡的时候保持指标的稳定,在单边方向运行的时候能够及时响应,是一个趋势跟踪信号。 因为它反应速度快,也容易具有一些噪音

定义 ER来表示这一段时间的变化站总的波动的多少,如果单方向上行,那么就是1,如果完全的横盘那就是0。 D i r e c t i o n = x t − x t − n V o l a t i l i t y = ∑ t − n + 1 t a b s ( x i − x i − 1 ) E R ( E f f e c t i v e R a t i o ) = d i r e c t i o n v o l a t i l i t y f a s t = 2 F a s t P e r i o d + 1 , s l o w = 2 S l o w P e r i o d + 1 S C ( S m o o t h i n g C o n s t a n t ) = [ E R × ( f a s t − s l o w ) + s l o w ] 2 K A M A t = K A M A t − 1 + S C × ( c l o s e t − K A M A t − 1 ) Direction = x_t-x_{t-n} \\ Volatility = \sum_{t-n+1}^t abs (x_i - x_i-1) \\ ER(EffectiveRatio) = \frac{direction}{volatility} \\ fast = \frac{2}{FastPeriod + 1}, slow = \frac{2}{SlowPeriod + 1} \\ SC(SmoothingConstant)=[ER\times (fast-slow)+slow]^2 \\ KAMA_t = KAMA_{t-1} + SC \times (close_t - KAMA_{t-1}) Direction=xt​−xt−n​Volatility=t−n+1∑t​abs(xi​−xi​−1)ER(EffectiveRatio)=volatilitydirection​fast=FastPeriod+12​,slow=SlowPeriod+12​SC(SmoothingConstant)=[ER×(fast−slow)+slow]2KAMAt​=KAMAt−1​+SC×(closet​−KAMAt−1​) 应用:(参考)[http://blog.sina.com.cn/s/blog_62d0bbc701010p7d.html]包括一个策略的参考

T3: Triple exponential Moving Average T3:

特征 这个函数相具备了六阶EMA,相比于EMA和DEMA会更加responsive,应用也更加广泛。 定义

GD: Generalized DEMA。如果vfactor等于1的话GD就是单纯的DEMA,如果是0,则退化成EMA G D ( x ) = E M A ( x ) × ( 1 + v f a c t o r ) − E M A ( E M A ( x ) ) × v f a c t o r T 3 = G D ( G D ( G D ( x ) ) ) GD(x) = EMA(x) \times (1+vfactor) - EMA(EMA(x)) \times vfactor \\ T3 = GD(GD(GD(x))) GD(x)=EMA(x)×(1+vfactor)−EMA(EMA(x))×vfactorT3=GD(GD(GD(x))) TRIX - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

性质 把triple ema求return。

MAMA - MESA Adaptive Moving Average

目前对于紧跟数据的moving average感觉它的效果是最好的,但是还不清楚具体怎么算的。 它使用了Hilbert Transform,值得研究

mama, fama = MAMA(close, fastlimit=0, slowlimit=0)

应用

这个参数用的人不多,且crossover效果目前看起来不错 HT_TRENDLINE - Hilbert Transform - Instantaneous Trendline

Hilbert transformation for discret. 目前来看应该是对于sin和cos的相位进行前后移动半个周期,具体还不清楚是怎么算的,利用1/t函数和原函数进行convolution

SAR - Parabolic Stop and Reveres real = SAR(high, low, acceleration=0, maximum=0)

特征:抛物线转向(SAR)也称停损点转向,其全称叫“Stop and Reveres”,缩写“SAR”,是由美国技术分析大师威尔斯·威尔德(Wells Wilder)所创造的,是一种简单易学、比较准确的中短期技术分析工具。由于SAR指标简单易懂、操作方便、稳重可靠等优势,因此,SAR指标又称为“傻瓜”指标,被广大投资者特别是中小散户普遍运用。 定义: S A R t = S A R t − 1 + A F t − 1 ∗ [ E P t − 1 − S A R t − 1 ] E P t = l o n g ? m a x ( E P t − 1 , h i g h t ) : m i n ( E P t − 1 , l o w t ) A F = E P t − 1 ! = E P t ? m i n ( A F + a c c e l e r a t i o n , m a x i m u m ) : A F SAR_t=SAR_{t-1}+AF_{t-1}*[EP_{t-1}-SAR_{t-1}] \\ EP_t = long?max(EP_{t-1}, high_t):min(EP_{t-1},low_t) \\ AF = EP_{t-1}!=EP_{t}?min(AF+acceleration, maximum):AF SARt​=SARt−1​+AFt−1​∗[EPt−1​−SARt−1​]EPt​=long?max(EPt−1​,hight​):min(EPt−1​,lowt​)AF=EPt−1​!=EPt​?min(AF+acceleration,maximum):AF 其中long和short被定义为当前仓位,反转被定义为:

Long的时候, L o w t < S A R Low_{t} < SAR Lowt​ S A R High_{t} > SAR Hight​>SAR 也就是向下突破,此时 S A R t = m i n ( L o w t − 1 , L o w t , E P t − 1 ) SAR_t = min(Low_{t-1}, Low_{t}, EP_{t-1}) SARt​=min(Lowt−1​,Lowt​,EPt−1​) 应用: 这个指标假设始终在场内有仓位,当Long的时候如果出现向下突破,也就是当日价格低于SAR,那么就要清仓(或者反向做空);如果做空(或者空仓)的时候当日价格向上突破SAR,那么就做多。 Momentum Indicator

写在前面:所有的momentum都可以被当成reversal信号,当一个信号不再强的时候,就可以当作reverse进场,当一个信号足够强的时候,就可以当作趋势进场,取决于每个人的投资哲学。

momentum其实就是当前的减去过去的,并认为未来和过去将会保持原有一样的趋势

Momentum

M o m e n t u m = p r i c e t − p r i c e t − N Momentum = price_{t} - price_{t-N} Momentum=pricet​−pricet−N​

ROC - Rate of change : ((price/prevPrice)-1)*100

代表当前收盘价比之前的收盘价高百分比多少 定义 R O C t = C l o s e t − C l o s e t − N C t − N ROC_{t} = \frac{Close_t - Close_{t-N}}{C_{t-N}} ROCt​=Ct−N​Closet​−Closet−N​​ 应用

当N-day ROC 是正的时候,买入当ROC是负的时候,卖出 DX - Directional Index

定义

首先定义DM (Directional movement) + D M t = max ⁡ ( ( H i g h t − H i g h t 1 ) × 1 ( H t − H t − 1 > L t − 1 − L t ) , 0 ) +DM_t = \max( (High_t-High_{t_1}) \times \mathbb{1}(H_t-H_{t-1} > L_{t-1} - L_{t}), 0) +DMt​=max((Hight​−Hight1​​)×1(Ht​−Ht−1​>Lt−1​−Lt​),0) +DM等于今日最高减去昨日最高,当且仅当今天的中间价格大于昨天的中间价格,且今日最高大于昨日最高。 − D M t = max ⁡ ( ( L t − 1 − L t ) × 1 ( L t − 1 + H t − 1 > L t + H t ) , 0 ) -DM_t = \max( (L_{t-1}-L_{t})\times \mathbb{1}(L_{t-1}+H_{t-1} > L_{t}+H_{t}), 0) −DMt​=max((Lt−1​−Lt​)×1(Lt−1​+Ht−1​>Lt​+Ht​),0) -DM等于昨日最低减去今日最低,当且仅当今日最低更小且今日的中间价格更小,是一个很强意味的向下信号。

此时我们再定义Directional indicator,DI + D I t = E M A ( + D M t / A T R t ) − D I t = E M A ( − D M t / A T R t ) +DI_t = EMA(+DM_t/ATR_t) \\ -DI_t = EMA(-DM_t/ATR_t) +DIt​=EMA(+DMt​/ATRt​)−DIt​=EMA(−DMt​/ATRt​) 则,DX也就是directional index被定义为 D X t = ∣ + D I t − ( − D I t ) ∣ + D I t + ( − D I t ) × 100 DX_t = \frac{|+DI_t - (-DI_t)|}{+DI_t + (-DI_t)} \times 100 DXt​=+DIt​+(−DIt​)∣+DIt​−(−DIt​)∣​×100

DX应该衡量了一个趋势的强弱,而下面的ADX对它进行了EMA操作,使得趋势更加的明显,减少噪音。

ADX - Average Directional Movement Index real = ADX(high, low, close, timeperiod=14) 这个数值是从0到100,但是其实很少超过60。如果ADX小于20,当前的走势大多是箱体震荡(range-bound)或者弱趋势。当ADX大于30,趋势就比较强烈了虽然ADX并不会衡量趋势方向,而是衡量了趋势的强弱,而事实上趋势方向通过比较正负DI的大小就可以得到。 A D X t = A D X t − 1 × ( n − 1 ) + D X n = E M A ( D X t ) ADX_t = \frac{ADX_{t-1} \times (n-1) + DX}{n} = EMA(DX_t) ADXt​=nADXt−1​×(n−1)+DX​=EMA(DXt​) ADXR - Average Directional Movement Index Rating

这个smoothing的操作虽然使得ADX响应更慢了,但是能够filter掉一些极端的大价格而形成的假趋势。 A D X R = A D X t − A D X t − N 2 ADXR = \frac{ADX_t - ADX_{t-N}}{2} ADXR=2ADXt​−ADXt−N​​

PPO - Percentage Price Oscillator

性质 用以描述两个MA的差值,同时因为分母多了一个FastMA因此具有一定的数值意义。 P P O = S l o w M A − F a s t M A F a s t M A PPO = \frac{SlowMA-FastMA}{FastMA} PPO=FastMASlowMA−FastMA​

APO - Absolute Price Oscillator

性质: 本质和MACD没有什么区别,可以选择matype,ema或者simple啥的,如果按照momentum的想法,当slow超过fast时候是金叉买入。也就是APO大于零的时候买入。

real = APO(close, fastperiod=12, slowperiod=26, matype=0)

A P O = S l o w M A ( c l o s e ) − F a s t M A ( c l o s e ) APO = SlowMA(close) - FastMA(close) APO=SlowMA(close)−FastMA(close)

MACD - Moving Average Convergence/Divergence macd, macdsignal, macdhist = MACD(close, fastperiod=12, slowperiod=26, signalperiod=9)

这里的定义,慢ema采用了0.075,快ema采用了0.15,对应的fastperiod和slowperiod分别是25.66667和12.3333。 Reminder: α = 2 2 + n \alpha = \frac{2}{2+n} α=2+n2​ s h o r t e m a = 0.15 × p r i c e + 0.85 × s h o r t e m a t − 1 l o n g e m a = 0.075 × p r i c e + 0.925 × l o n g e m a t − 1 M A C D = s h o r t e m a − l o n g e m a m a c d s i g n a l = E M A ( M A C D ) m a c d h i s t = 2 × ( M A C D − m a c d s i g n a l ) shortema = 0.15 \times price + 0.85 \times shortema_{t-1} \\ longema = 0.075 \times price + 0.925 \times longema_{t-1} \\ MACD = shortema - longema \\ macdsignal = EMA(MACD) \\ macdhist = 2\times (MACD - macdsignal) shortema=0.15×price+0.85×shortemat−1​longema=0.075×price+0.925×longemat−1​MACD=shortema−longemamacdsignal=EMA(MACD)macdhist=2×(MACD−macdsignal)

MACD 能够捕捉趋势和表示新的趋势方向MACD大代表超买,小的数值代表超卖当MACD与price方向diverge的时候意味着趋势即将结束,从数学上表现为快速均线和慢速均线逐渐靠近,原来的趋势逐渐变弱。通俗来讲就是涨的更慢了,跌的也更慢了如果MACD向上超过signal line,那么就应该买入,如果向下穿过就应该卖出;同时为了confirm买入信号,MACD应该是正的;same for sell。 MFI - Money Flow Index real = MFI(high, low, close, volume, timeperiod=14)

性质 介于0到100,当大于80或者小于20的时候代表市场见顶或者见底。

定义 T y p i c a l P r i c e = h i g h + l o w + c l o s e 3 P o s i t i v e F l o w t = P o s i t i v e F l o w t − 1 + T y p i c a l P r i c e ∗ a m o u n t ∗ 1 ( T P t > T P t − 1 ) N e g a t i v e F l o w t = N e g a t i v e F l o w t − 1 + T y p i c a l P r i c e ∗ a m o u n t ∗ 1 ( T P t < T P t − 1 ) B u y F l o w = ∑ t T P o s i t i v e F l o w t S e l l F l o w = ∑ t T N e g a t i v e F l o w t F l o w R a t i o = 100 ∗ B u y B u y + S e l l TypicalPrice = \frac{high+low+close}{3} \\ PositiveFlow_t = PositiveFlow_{t-1} + TypicalPrice * amount *\mathbb{1} (TP_t > TP_{t-1}) \\ NegativeFlow_t = NegativeFlow_{t-1} + TypicalPrice * amount *\mathbb{1} (TP_t < TP_{t-1}) \\ BuyFlow = \sum_t^T PositiveFlow_t \\ SellFlow = \sum_t^T NegativeFlow_t \\ FlowRatio = 100*\frac{Buy}{Buy+Sell} TypicalPrice=3high+low+close​PositiveFlowt​=PositiveFlowt−1​+TypicalPrice∗amount∗1(TPt​>TPt−1​)NegativeFlowt​=NegativeFlowt−1​+TypicalPrice∗amount∗1(TPt​



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3